The demand for data storage capacity for computer systems has led to the development of a variety of storage devices and storage services. Information may be stored using different formats and sometimes may be accessed by different clients via a network. Many computer systems implement file system-based storage, in which data is stored in different files in different directories of the file system. A storage device or a storage service may offer different clients the ability to access a single shared folder using a file system protocol, such as network file system (NFS). Block-based storage and object-based storage are other examples of techniques for storing data.
In some cases, a service provider may provide a remote storage service to clients to store client data (e.g., via an internet connection). However, for various reasons, a client may decide to store some of their data or all of their data on-site. In some cases, a service provider may provide software for use on-site that has the same or similar functionality as software at the remote storage service. Thus, a client may use the same or similar storage interface and storage service to access and store data on-site using deices within the client's local network.
When a client stores data to a storage device, the data may be processed, altered, or changed to a different format by the storage device (or an intermediary device) before the data is stored to the storage device in the new format. For example, when a client sends file system writes to store data or update data on a storage device, the data for file system writes may be processed in a memory of the storage device into a particular data format and then sent to a persistent storage area (e.g., a hard disk, tape, etc.) for storage. However, if the storage device experiences a power failure, the data in the memory may be lost and the client may need to re-send file system writes to the storage device.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.